package com.company.cloud.art.modules.api.service;

import com.company.cloud.art.modules.api.fallback.ArtActRemoteServiceFallbackFactory;
import com.company.cloud.art.modules.api.request.*;
import com.company.cloud.art.modules.api.response.ActSignUp;
import com.company.cloud.art.modules.api.response.ActSignUpQueryResp;
import com.company.cloud.art.modules.api.response.ArtAct;
import com.company.cloud.art.modules.api.response.ArtActQueryResp;
import com.company.cloud.common.bean.BaseClientResult;
import com.company.common.server.constant.ServiceNameConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(contextId = "artAct", name = ServiceNameConstant.art_center, fallbackFactory = ArtActRemoteServiceFallbackFactory.class)
public interface ArtActRemoteService {

    /** 活动报名查询 */
    @RequestMapping(value = "/remote/art/actSignUpQuery", method = RequestMethod.POST)
    public BaseClientResult<ActSignUpQueryResp> actSignUpQuery(@RequestBody ActSignUpQueryReq request);

    /** 活动报名信息 */
    @RequestMapping(value = "/remote/art/actSignUpInfo", method = RequestMethod.GET)
    public BaseClientResult<ActSignUp> actSignUpInfo(@RequestParam("id") Integer id);

    /** 活动报名新增 */
    @RequestMapping(value = "/remote/art/actSignUpAdd", method = RequestMethod.POST)
    public BaseClientResult<String> actSignUpAdd(@RequestBody ActSignUpAddReq request);


    /** 活动查询 */
    @RequestMapping(value = "/remote/art/actQuery", method = RequestMethod.POST)
    public BaseClientResult<ArtActQueryResp> actQuery(@RequestBody ArtActQueryReq request);

    /** 活动信息 */
    @RequestMapping(value = "/remote/art/actInfo", method = RequestMethod.GET)
    public BaseClientResult<ArtAct> actInfo(@RequestParam("activityNo") String activityNo);

    /** 活动新增*/
    @RequestMapping(value = "/remote/art/actAdd", method = RequestMethod.POST)
    public BaseClientResult<String> actAdd(@RequestBody ArtActSaveReq request);

    /** 活动修改 */
    @RequestMapping(value = "/remote/art/actUpdate", method = RequestMethod.POST)
    public BaseClientResult<String> actUpdate(@RequestBody ArtActUpdateReq request);

    /** 活动删除 */
    @RequestMapping(value = "/remote/art/actDel", method = RequestMethod.POST)
    public BaseClientResult<String> actDel(@RequestBody ArtActDelReq request);


}
